#pragma once
#ifndef OBR_BACKGROUND_H
#define OBR_BACKGROUND_H

#include "Configurable.h"
#include "ProgramEntry.h"
#include "SharedDS/BackgroundData.h"
#include "common.h"
#include "helpers/Helpers.h"

namespace OBR
{
class Background : public ProgramEntry
{
public:
    std::shared_ptr<CudaProgram> background_program_group; // points to the program group created

private:
public:
    Background(std::string cuda_source_path);
    ~Background();

    /**
     * @brief get program group of this type
     *
     * @return std::shared_ptr<CudaProgram>
     */
    std::shared_ptr<CudaProgram> getProgram() override;

private:
    void setProgram(std::shared_ptr<CudaProgram> prog) override;
};
} // namespace OBR

#endif